1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 package org.webmacro;
25
26 import java.io.IOException;
27
28 /***
29 * Directives, variables, macro calls, blocks, conditions, text, etc., all
30 * have this as their supertype.
31 */
32 public interface Macro
33 {
34
35 /***
36 * Interpret the directive and write it out, using the values in
37 * the supplied context as appropriate.
38 * <p>
39 * @exception PropertyException if required data was missing from context
40 * @exception IOException if we could not successfully write to out
41 */
42 public void write (FastWriter out, Context context)
43 throws PropertyException, IOException;
44
45 /***
46 * same as out but returns a String
47 * <p>
48 * @exception PropertyException if required data was missing from context
49 */
50 public Object evaluate (Context context)
51 throws PropertyException;
52
53 }
54